#ifndef _SANDBOX_HPP_
#define _SANDBOX_HPP_

#include "Prototype.hpp"
// [PHAT] temp
#include "AllegroResource.hpp"
#include "KeyboardResource.hpp"
#include <boost/shared_ptr.hpp>
#include <list>

class Prototype;
class Sandbox
{
    typedef std::list< boost::shared_ptr<Prototype> > PrototypeCollection;

public:
    Sandbox();
    ~Sandbox();

public:
    void Add( boost::shared_ptr<Prototype> );
    void NextPrototype();
    void PreviousPrototype();
    void Run();
    void Render();
    void Init();

private:
    AllegroResourceRef mResource;
    input::KeyboardResourceRef mKeyboardResource;

private:
    PrototypeCollection mCollection;
    PrototypeCollection::iterator mActivePrototype;

private:
    BITMAP* mScreenBuffer;
};

#endif // _SANDBOX_HPP_
